#pragma once

#include <vector>
using std::vector;

template <class T>
class ComponentManager
{
public:
	vector<T>& getComponents();
	void addComponent(T component);

private:
	vector<T> components;

	// singleton implement
private:
	ComponentManager(void);
	~ComponentManager(void);
private:
	static ComponentManager<T> instance;
public:
	static ComponentManager<T>& getInstance();
};